2.4.2 服务静态文件

除负责将请求重定向到相应的处理器之外,多路复用器还需要为静态文件提供服务。为了做到这一点,程序使用 FileServer 函数创建了一个能够为指定目录中的静态文件服务的处理器,并将这个处理器传递给了多路复用器的 Handle 函数。除此之外,程序还使用 StripPrefix 函数去移除请求URL中的指定前缀:

files := http.FileServer(http.Dir("/public"))
mux.Handle("/static/", http.StripPrefix("/static/", files))

当服务器接收到一个以 /static/ 开头的URL请求时,以上两行代码会移除URL中的 /static/ 字符串,然后在 public 目录中查找被请求的文件。比如说,当服务器接收到一个针对文件 http://localhost/static/css/bootstrap.min.css 的请求时,它将会在 public 目录中查找以下文件:

<application root>/css/bootstrap.min.css

当服务器成功地找到这个文件之后,会把它返回给客户端。

results matching ""

    No results matching ""